{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-htmlsanitizer",
      "artifactVersion": "2023.12.6",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.binary.metadata",
          "org.nuxeo.directory.mongodb",
          "org.nuxeo.dmk-adaptor",
          "org.nuxeo.ecm.audit.io",
          "org.nuxeo.ecm.default.config",
          "org.nuxeo.ecm.jwt",
          "org.nuxeo.ecm.permissions",
          "org.nuxeo.ecm.platform",
          "org.nuxeo.ecm.platform.api",
          "org.nuxeo.ecm.platform.collections.core",
          "org.nuxeo.ecm.platform.commandline.executor",
          "org.nuxeo.ecm.platform.convert",
          "org.nuxeo.ecm.platform.csv.export",
          "org.nuxeo.ecm.platform.dublincore",
          "org.nuxeo.ecm.platform.filemanager",
          "org.nuxeo.ecm.platform.htmlsanitizer",
          "org.nuxeo.ecm.platform.mail",
          "org.nuxeo.ecm.platform.oauth",
          "org.nuxeo.ecm.platform.oauth1",
          "org.nuxeo.ecm.platform.pdf",
          "org.nuxeo.ecm.platform.query.api",
          "org.nuxeo.ecm.platform.rendering",
          "org.nuxeo.ecm.platform.threed",
          "org.nuxeo.ecm.platform.thumbnail",
          "org.nuxeo.ecm.platform.types",
          "org.nuxeo.ecm.platform.url",
          "org.nuxeo.ecm.platform.usermanager",
          "org.nuxeo.ecm.quota",
          "org.nuxeo.ecm.webdav",
          "org.nuxeo.importer.stream",
          "org.nuxeo.mail",
          "org.nuxeo.mongodb.audit",
          "org.nuxeo.search.ui",
          "org.nuxeo.usermapper"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform",
        "id": "grp:org.nuxeo.ecm.platform",
        "name": "org.nuxeo.ecm.platform",
        "parentIds": [],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "# Nuxeo Platform Importer\n\n## About Nuxeo Platform Importer\n\nThe file importer comes as a Java library (with nuxeo runtime service) and a sample JAX-RS interface to launch, monitor and abort import jobs.\nThis project is an on-going project, supported by Nuxeo\n\n## Building\n### How to Build Nuxeo Platform Importer\nBuild the Nuxeo Platform Importer with Maven:\n```$ mvn install -Dmaven.test.skip=true```\n\n## Deploying\nNuxeo Platform Importer is available as two package add-ons [from the Nuxeo Marketplace]\nhttps://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-platform-importer\nhttps://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-scan-importer\n\n## Resources\n### Documentation\nThe documentation for Nuxeo Platform Importer is available in our Documentation Center: http://doc.nuxeo.com/x/gYBVAQ\n\n### Reporting Issues\nYou can follow the developments in the Nuxeo Platform project of our JIRA bug tracker, which includes a Nuxeo Platform Importer component:\nhttps://jira.nuxeo.com/browse/NXP/component/10621\n\nYou can report issues on: http://answers.nuxeo.com/\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "83bb2a4c6415c9f07db3ab17fa99510c",
            "encoding": "UTF-8",
            "length": 1753,
            "mimeType": "text/plain",
            "name": "README.md"
          }
        ],
        "version": "2023.12"
      },
      "bundleId": "org.nuxeo.ecm.platform.htmlsanitizer",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerServiceImpl",
          "documentation": "\n    The HTML Sanitizer Service sanitizes some HTML fields\n    to remove potential cross-site scripting attack in them.\n\n    @author Florent Guillaume\n  \n",
          "documentationHtml": "<p>\nThe HTML Sanitizer Service sanitizes some HTML fields\nto remove potential cross-site scripting attack in them.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "descriptors": [
                "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerDescriptor"
              ],
              "documentation": "\n      Specify the types of documents and fields to sanitize.\n\n      The following example configures just based on field\n      names:\n\n      <code>\n    <sanitizer name=\"foo\">\n        <field>note</field>\n        <field>comment:text</field>\n    </sanitizer>\n</code>\n\n\n      The following specifies that only the note field of the Note type\n      will be sanitized:\n\n      <code>\n    <sanitizer name=\"foo\">\n        <type>Note</type>\n        <field>note</field>\n    </sanitizer>\n</code>\n\n\n      The following example disables a sanitizer:\n\n      <code>\n    <sanitizer enabled=\"false\" name=\"default\"/>\n</code>\n\n\n      Sanitizing can also be enabled on a field only if a field has a given value.\n      This is useful when the same document field can contain text, html or wiki markup.\n      For a webpage, you may want to only sanitize the webpages that are using HTML.\n      Here is an example configuration.\n\n     <code>\n    <sanitizer name=\"foo\">\n        <field filter=\"webp:isRichtext\" filterValue=\"true\">webp:content</field>\n    </sanitizer>\n</code>\n\n\n     In this example the field webp:content will be sanitized only when\n     the String representation of the webp:isRichtext is \"true\".\n\n     If you want to <em>not</em>\n sanitize when a given value is present, use:\n\n     <code>\n    <sanitizer name=\"foo\">\n        <field filter=\"mime_type\" filterValue=\"text/plain\" sanitize=\"false\">note</field>\n    </sanitizer>\n</code>\n",
              "documentationHtml": "<p>\nSpecify the types of documents and fields to sanitize.\n</p><p>\nThe following example configures just based on field\nnames:\n</p><p>\n</p><pre><code>    &lt;sanitizer name&#61;&#34;foo&#34;&gt;\n        &lt;field&gt;note&lt;/field&gt;\n        &lt;field&gt;comment:text&lt;/field&gt;\n    &lt;/sanitizer&gt;\n</code></pre><p>\nThe following specifies that only the note field of the Note type\nwill be sanitized:\n</p><p>\n</p><pre><code>    &lt;sanitizer name&#61;&#34;foo&#34;&gt;\n        &lt;type&gt;Note&lt;/type&gt;\n        &lt;field&gt;note&lt;/field&gt;\n    &lt;/sanitizer&gt;\n</code></pre><p>\nThe following example disables a sanitizer:\n</p><p>\n</p><pre><code>    &lt;sanitizer enabled&#61;&#34;false&#34; name&#61;&#34;default&#34;/&gt;\n</code></pre><p>\nSanitizing can also be enabled on a field only if a field has a given value.\nThis is useful when the same document field can contain text, html or wiki markup.\nFor a webpage, you may want to only sanitize the webpages that are using HTML.\nHere is an example configuration.\n</p><p>\n</p><pre><code>    &lt;sanitizer name&#61;&#34;foo&#34;&gt;\n        &lt;field filter&#61;&#34;webp:isRichtext&#34; filterValue&#61;&#34;true&#34;&gt;webp:content&lt;/field&gt;\n    &lt;/sanitizer&gt;\n</code></pre><p>\nIn this example the field webp:content will be sanitized only when\nthe String representation of the webp:isRichtext is &#34;true&#34;.\n</p><p>\nIf you want to <em>not</em>\nsanitize when a given value is present, use:\n</p><p>\n</p><pre><code>    &lt;sanitizer name&#61;&#34;foo&#34;&gt;\n        &lt;field filter&#61;&#34;mime_type&#34; filterValue&#61;&#34;text/plain&#34; sanitize&#61;&#34;false&#34;&gt;note&lt;/field&gt;\n    &lt;/sanitizer&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService/ExtensionPoints/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--sanitizer",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--sanitizer",
              "label": "sanitizer (org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService)",
              "name": "sanitizer",
              "version": "2023.12.6"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "descriptors": [
                "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerAntiSamyDescriptor"
              ],
              "documentation": "\n      The following allows you to change the AntiSamy policy file:\n\n      <code>\n    <antisamy policy=\"some-file.xml\"/>\n</code>\n",
              "documentationHtml": "<p>\nThe following allows you to change the AntiSamy policy file:\n</p><p>\n</p><pre><code>    &lt;antisamy policy&#61;&#34;some-file.xml&#34;/&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService/ExtensionPoints/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--antisamy",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--antisamy",
              "label": "antisamy (org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService)",
              "name": "antisamy",
              "version": "2023.12.6"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService/Contributions/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--listener",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--listener",
              "registrationOrder": 28,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2023.12.6",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <description>\n      Listener that runs (very early) the HTML Sanitizer.\n    </description>\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerListener\" name=\"htmlsanitizerlistener\" postCommit=\"false\" priority=\"-10\">\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
          "name": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
          "requirements": [],
          "resolutionOrder": 377,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService/Services/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "overriden": false,
              "version": "2023.12.6"
            }
          ],
          "startOrder": 851,
          "version": "2023.12.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\"\n  version=\"1.0.0\">\n\n  <documentation>\n    The HTML Sanitizer Service sanitizes some HTML fields\n    to remove potential cross-site scripting attack in them.\n\n    @author Florent Guillaume\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\" />\n  </service>\n\n  <extension-point name=\"sanitizer\">\n    <documentation>\n      Specify the types of documents and fields to sanitize.\n\n      The following example configures just based on field\n      names:\n\n      <code>\n        <sanitizer name=\"foo\">\n          <field>note</field>\n          <field>comment:text</field>\n        </sanitizer>\n      </code>\n\n      The following specifies that only the note field of the Note type\n      will be sanitized:\n\n      <code>\n        <sanitizer name=\"foo\">\n          <type>Note</type>\n          <field>note</field>\n        </sanitizer>\n      </code>\n\n      The following example disables a sanitizer:\n\n      <code>\n        <sanitizer name=\"default\" enabled=\"false\" />\n      </code>\n\n      Sanitizing can also be enabled on a field only if a field has a given value.\n      This is useful when the same document field can contain text, html or wiki markup.\n      For a webpage, you may want to only sanitize the webpages that are using HTML.\n      Here is an example configuration.\n\n     <code>\n       <sanitizer name=\"foo\">\n         <field filter=\"webp:isRichtext\" filterValue=\"true\">webp:content</field>\n       </sanitizer>\n     </code>\n\n     In this example the field webp:content will be sanitized only when\n     the String representation of the webp:isRichtext is \"true\".\n\n     If you want to <em>not</em> sanitize when a given value is present, use:\n\n     <code>\n       <sanitizer name=\"foo\">\n         <field filter=\"mime_type\" filterValue=\"text/plain\" sanitize=\"false\">note</field>\n       </sanitizer>\n     </code>\n\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"antisamy\">\n    <documentation>\n      The following allows you to change the AntiSamy policy file:\n\n      <code>\n        <antisamy policy=\"some-file.xml\"/>\n      </code>\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerAntiSamyDescriptor\" />\n  </extension-point>\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n    <description>\n      Listener that runs (very early) the HTML Sanitizer.\n    </description>\n    <listener name=\"htmlsanitizerlistener\"\n      class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerListener\"\n      postCommit=\"false\" async=\"false\" priority=\"-10\">\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/htmlsanitizer-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--antisamy",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.config/Contributions/org.nuxeo.ecm.platform.htmlsanitizer.config--antisamy",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.config--antisamy",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "name": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "type": "service"
              },
              "version": "2023.12.6",
              "xml": "<extension point=\"antisamy\" target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\">\n    <antisamy policy=\"antisamy-nuxeo-policy.xml\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--sanitizer",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.config/Contributions/org.nuxeo.ecm.platform.htmlsanitizer.config--sanitizer",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.config--sanitizer",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "name": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "type": "service"
              },
              "version": "2023.12.6",
              "xml": "<extension point=\"sanitizer\" target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\">\n    <sanitizer name=\"default\">\n      <!-- <field>dc:description</field> -->\n      <field filter=\"mime_type\" filterValue=\"text/plain,text/x-web-markdown,text/xml\" sanitize=\"false\">note</field>\n      <field>webc:welcomeText</field>\n      <field filter=\"webp:isRichtext\" filterValue=\"true\">webp:content</field>\n      <field>comment:text</field>\n      <!-- <field>post:text</field> -->\n    </sanitizer>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.config",
          "name": "org.nuxeo.ecm.platform.htmlsanitizer.config",
          "requirements": [],
          "resolutionOrder": 378,
          "services": [],
          "startOrder": 336,
          "version": "2023.12.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.htmlsanitizer.config\"\n  version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\"\n    point=\"antisamy\">\n    <antisamy policy=\"antisamy-nuxeo-policy.xml\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\"\n    point=\"sanitizer\">\n    <sanitizer name=\"default\">\n      <!-- <field>dc:description</field> -->\n      <field filter=\"mime_type\" filterValue=\"text/plain,text/x-web-markdown,text/xml\" sanitize=\"false\">note</field>\n      <field>webc:welcomeText</field>\n      <field filter=\"webp:isRichtext\" filterValue=\"true\">webp:content</field>\n      <field>comment:text</field>\n      <!-- <field>post:text</field> -->\n    </sanitizer>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/htmlsanitizer-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-htmlsanitizer-2023.12.6.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer",
      "id": "org.nuxeo.ecm.platform.htmlsanitizer",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: root\r\nBuild-Jdk: 17.0.11\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nExport-Package: org.nuxeo.ecm.platform.htmlsanitizer\r\nPrivate-Package: .\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: Nuxeo HTML Sanitizer Service\r\nBundle-Localization: plugin\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nBundle-Vendor: Nuxeo\r\nNuxeo-Component: OSGI-INF/htmlsanitizer-service.xml,OSGI-INF/htmlsanitiz\r\n er-contrib.xml\r\nImport-Package: org.apache.commons.logging,org.nuxeo.common.xmap.annotat\r\n ion,org.nuxeo.ecm.core;api=split,org.nuxeo.ecm.core.api;api=split,org.n\r\n uxeo.ecm.core.api.event,org.nuxeo.ecm.core.api.model,org.nuxeo.ecm.core\r\n .event,org.nuxeo.ecm.core.event.impl,org.nuxeo.ecm.core.schema,org.nuxe\r\n o.runtime.api,org.nuxeo.runtime.model,org.owasp.validator.html\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.htmlsanitizer\r\n\r\n",
      "maxResolutionOrder": 378,
      "minResolutionOrder": 377,
      "packages": [],
      "requirements": [],
      "version": "2023.12.6"
    }
  ],
  "creationDate": 1716285025814,
  "key": "Nuxeo Platform-2023.12",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1716285025814,
  "version": "2023.12"
}